function [output] = steady_state_simulation_IRF(parameters,max_year_entry,transition_year,transition_pre_period,transition_post_period, import_tariff_entry, import_tariff_counterfactual)
place = {'US', 'OECD'};
set_parameters
initialize_vectors
import_tariff.US = import_tariff_entry;
import_tariff.OECD = import_tariff_entry;
max_year = max_year_entry;

year = 1;

% MAIN SIMULATION LOOP
while year<=max_year;
    
    year_index = ['y' num2str(year)];
    if year > 1
        lag_year_index=['y' num2str(year-1)];
    end
    
    % SIMULATE INNOVATION PROCESS AND REASSIGN VARIETIES TO PRODUCERS
    innovation_and_assignment
        
    % ITERATE TO DETERMINE EQUILIBRIUM WAGES AND TRADE FLOWS
    if year >= transition_year
        import_tariff.US = import_tariff_counterfactual;
        import_tariff.OECD = import_tariff_counterfactual;
    end
    
    [wage.OECD,omega,exports.US.(year_index),exports.OECD.(year_index),produced.US.(year_index),produced.OECD.(year_index),...
        nontraded.US.(year_index),nontraded.OECD.(year_index),prices.US.(year_index),prices.OECD.(year_index),output.US.(year_index),output.OECD.(year_index),...
        markups.US.(year_index),markups.OECD.(year_index),mu_bar.US(end+1),mu_bar.OECD(end+1),...
        nominal_GDP.US.(year_index),nominal_GDP.OECD.(year_index),export_share.US(end+1),export_share.OECD(end+1),revenue.US.(year_index),revenue.OECD.(year_index),x,m,...
        qualities_vec_consumed.US,qualities_vec_consumed.OECD,labor_share.US(end+1),labor_share.OECD(end+1),wage_level.US,wage_level.OECD,...
        P_bar.US.(year_index),P_bar.OECD.(year_index),total_income.US.(year_index),total_income.OECD.(year_index),...
        real_consumption.US.(year_index),real_consumption.OECD.(year_index),real_product_wage.US,real_product_wage.OECD] = ...
        find_equilibrium(wage.OECD,qualities_vec.US,qualities_vec.OECD,domestic_competitor_qual_vec.US,domestic_competitor_qual_vec.OECD,...
        import_tariff.US,import_tariff.OECD,l.US,l.OECD,n_varieties,export_share.US(end),export_share.OECD(end),mu_bar.US(end),mu_bar.OECD(end));
  
    calculate_trade_elasticity_real
    trade_elasticity_US_vec = [trade_elasticity_US_vec;  trade_elasticity_US];
    trade_elasticity_OECD_vec = [trade_elasticity_OECD_vec;  trade_elasticity_US];
    
    % RUN FILE TO CALCULATE MOMENTS
    track_moments_within_loop    
       
    % UPDATE NEXT YEAR'S VARIETY OWNERSHIP BEFORE THE INNOVATION FOR THAT
    % YEAR BEGINS
    nxt_yr_index = ['y' num2str(year+1)];
    for cc=1:length(place)
    varown_vec.(place{cc}).(nxt_yr_index) = varown_vec.(place{cc}).(year_index);
    end
        
    l.US = population_growth*l.US;
    l.OECD = population_growth*l.OECD;
    
    year = year+1;
    
end

calculate_moments_after_loop

omega_tograph = omega_vec(transition_year-transition_pre_period:transition_year+transition_post_period);
relative_product_wage_tograph = relative_product_wage_vec(transition_year-transition_pre_period:transition_year+transition_post_period);
USgrowth_tograph = real_wage_growth_vec.US(transition_year-transition_pre_period-1:transition_year+transition_post_period-1);
OECDgrowth_tograph = real_wage_growth_vec.OECD(transition_year-transition_pre_period-1:transition_year+transition_post_period-1);
USexportshare_tograph = export_share.US(transition_year-transition_pre_period:transition_year+transition_post_period);
OECDexportshare_tograph = export_share.OECD(transition_year-transition_pre_period:transition_year+transition_post_period);
UStradeelasticity_tograph = trade_elasticity_US_vec(transition_year-transition_pre_period:transition_year+transition_post_period);
OECDtradeelasticity_tograph = trade_elasticity_OECD_vec(transition_year-transition_pre_period:transition_year+transition_post_period);

% CHOOSE A FEW KEY MOMENTS TO OUTPUT FROM THE FUNCTION
output = [omega_tograph' relative_product_wage_tograph' USgrowth_tograph OECDgrowth_tograph USexportshare_tograph' OECDexportshare_tograph' UStradeelasticity_tograph OECDtradeelasticity_tograph];                       

end